﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Triunfadores.BusinessEntities
{
    public class Cliente
    {
        //constructor que inicializa
        public Cliente()
        {
            this.IcDetallesCliente=new List<DetalleCliente>();

            this.IcPrestamosCliente = new List<Prestamo>();
            this.IcPrestamosAvalado = new List<Prestamo>();
            this.IcVentaAcciones = new List<VentaAccion>();
            this.IcSolicitudAhorro = new List<SolicitudAhorro>();
            this.IcSolicitudPrestamo = new List<SolicitudPrestamo>();
            this.IcAhorros = new List<Ahorro>();
        }

        public Int32 Id { get; set; }

        public string Apellidos { get; set; }
        public string Barrio { get; set; }//
        public string Direccion { get; set; }
        public string Dni { get; set; }
        public string Email { get; set; }
        public bool Empleado { get; set; }//
        public string EstadoCivil { get; set; }
        public bool Estado { get; set; }
        public DateTime FechIngreso { get; set; }
        public DateTime FechNacimiento { get; set; }
        public DateTime? FechRetiro { get; set; }
        //
        public virtual Ubigeo LugarNacimiento { get; set; }
        public Int32 IdLugarNacimiento { get; set; }
        //
        public string Nombres { get; set; }
        public string NroHijos { get; set; }
        public string Ocupacion { get; set; }
        public string Sexo{ get; set; }//
        public string TelefonoFijo { get; set; }//
        public string Telefono { get; set; }
        public string Telefono1 { get; set; }//
        public string TipoVivienda { get; set; }//arendada-damiliar-propia
        //=================================================
        public string CentroTrabajo { get; set; }
        public string TelOficina { get; set; }//
        public string TelCelular { get; set; }//
        public string TelCelular2 { get; set; }//
        //
        public virtual Ubigeo DirecCentTrabajo { get; set; }
        public Int32? IdDirecCentTrabajo { get; set; }
        //
        public virtual Ubigeo LugarCasa { get; set; }
        public Int32 IdLugarCasa { get; set; }
        //==================================================

        //un socio va a tener un tipo: Socio, Avalado o Ahorrista
        public virtual TipoCliente TipoCliente { get; set; }
        public Int32 IdTipoCliente { get; set; }

        #region Colecciones
        //un cliente va ha tener uno o mas beneficiarios
        public virtual List<DetalleCliente> IcDetallesCliente { get; set; } 

        //un cliente de tipo socio va a poder comparvarias acciones
        public virtual ICollection<VentaAccion> IcVentaAcciones { get; set; }

        //un cliente va a tener uno o mas prestamos
        public virtual ICollection<Prestamo> IcPrestamosAvalado { get; set; }
        public virtual ICollection<Prestamo> IcPrestamosCliente { get; set; }

        //un cliente va a poder realizar una o muchas solicitudes de ahorro
        public virtual ICollection<SolicitudAhorro> IcSolicitudAhorro { get; set; }
        //un cliente va a poder realizar una o muchas solicitudes de PRESTAMOS
        public virtual ICollection<SolicitudPrestamo> IcSolicitudPrestamo { get; set; }

        //un cliente va a poder realizar una o muchos  ahorros
        public virtual ICollection<Ahorro> IcAhorros { get; set; }

        #endregion
    }
}
